package com.server;

import com.server.util.LogUtil;

/**
 * 主入口
 */
public class MainServer {

    public static void main(String[] args) {
        Server server = new Server();
        final Thread shutdownHook = new Thread("shutdown-hook") {
            @Override
            public void run() {
                LogUtil.game.info("优雅的关闭服务器begin");
                server.close();
                LogUtil.game.info("优雅的关闭服务器success");
            }
        };
        server.init(shutdownHook);
        server.start();
        /**
         * 进程结束前最后的处理
         * 是 JVM 销毁前要执行的一个线程
         * kill -9 pid时不会被调用，idea直接关闭也是kill -9
         * 推荐使用kill -15 pid
         * 若有多个hook，JVM调用顺序随机
         * System.exit(0);也可触发钩子
         */
        Runtime.getRuntime().addShutdownHook(shutdownHook);
    }
}
